﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Serialization;
using Polenter.Serialization;

namespace Model
{
    public class CentroMedico
    {
        public List<Paciente> pacientes { get; set; }
        public List<Paciente> urgencias { get; set; }

        public CentroMedico()
        {
 
            pacientes = new List<Paciente>();

            urgencias = new List<Paciente>();
        }

        public bool agregarPaciente(Paciente p)
        {


            if (buscarPaciente(p.Cedula) != null)
            {
                return false;
            }

            pacientes.Add(p);

           /* XmlSerializer serializer = new XmlSerializer(typeof(List<Paciente>));
            FileStream fs = new FileStream("centro.xml", FileMode.Create);
            serializer.Serialize(fs, pacientes);
            fs.Close();*/

            //serialize
            SharpSerializer mySerializer = new SharpSerializer();
            mySerializer.Serialize(pacientes, "pacientes.xml");

            return true;
        }
        public Paciente buscarPaciente(string cc)
            
        {
            //deserialize
            List<Paciente> pacienteDeserialize = new List<Paciente>();
            SharpSerializer mySerializer = new SharpSerializer();            
            try{
           pacienteDeserialize = (List<Paciente>) mySerializer.Deserialize("pacientes.xml");
            }catch(Exception e){}
           foreach (Paciente x in pacienteDeserialize)
            {
                if (x.Cedula.Equals(cc))
                {
                    return x;
                }
            }

            return null;
        }

        //USANDO COLAS DE PRIORIDAD
        public void agregarUrgencia(Paciente P)
        {
            //pruebas agregando lista normal
            urgencias.Add(P);
        }

        public void crearHistorial(Historial h, Paciente p)
        {
            p.historial = h;
        }
    }
}
